//
//  JCFlipViewAnimationHelper.h
//  JCFlipPageView
//
//  Created by Jimple on 14-8-8.
//  Copyright (c) 2014年 JimpleChen. All rights reserved.
//
#import <UIKit/UIKit.h>

typedef NS_ENUM(NSUInteger, EFlipDirection)
{
    kEFlipDirectionToPrePage               = 0,
    kEFlipDirectionToNextPage
};

@protocol JCFlipViewAnimationHelperDataSource;
@protocol JCFlipViewAnimationHelperDelegate;
@interface JCFlipViewAnimationHelper : NSObject

@property (nonatomic, weak) id<JCFlipViewAnimationHelperDataSource> dataSource;
@property (nonatomic, weak) id<JCFlipViewAnimationHelperDelegate> delegate;

/**
 通过 helper 给 hostView 添加手势

 @param hostView 需要托管helper的view
 @return helper
 */
- (instancetype)initWithHostView:(UIView *)hostView;

@end


/**
 数据协议
通过代理 设置 前、中、后 三页
 */
@protocol JCFlipViewAnimationHelperDataSource <NSObject>

/**
 拿到 上一页 的pageView
 */
- (UIView *)flipViewAnimationHelperGetPreView:(JCFlipViewAnimationHelper *)helper;

/**
 拿到 当前页 的pageView
 */
- (UIView *)flipViewAnimationHelperGetCurrentView:(JCFlipViewAnimationHelper *)helper;

/**
 拿到 下一页 的pageView
 */
- (UIView *)flipViewAnimationHelperGetNextView:(JCFlipViewAnimationHelper *)helper;

@end


/**
 动画协议
 动过代理 在一下三种时刻 加入操作：
 当前页开始动画
 当前页结束动画
 已经完成反转动画
 */
@protocol JCFlipViewAnimationHelperDelegate <NSObject>

/**
 隐藏当前页面
 */
- (void)flipViewAnimationHelperBeginAnimation:(JCFlipViewAnimationHelper *)helper;

/**
 显示当前页面
 */
- (void)flipViewAnimationHelperEndAnimation:(JCFlipViewAnimationHelper *)helper;

/**
 根据上下翻页 调整currentPage
 */
- (void)flipViewAnimationHelper:(JCFlipViewAnimationHelper *)helper flipCompletedToDirection:(EFlipDirection)direction;

@end
